package 商城进货交易记录程序设计;

//1.任务描述
//在日常工作中，经常会遇到批量操作系统文件的事情，通常情况下，只能手动重复的完成批量文件的操作，这样很是费时费力。
// 本案例要求编写一个文件管理器，实现文件的批量操作。文件管理器具体功能要求如下：
//（1）	用户输入指令1，代表“指定关键字检索文件”，此时需要用户输入检索的目录和关键字，系统在用户指定的目录下检索出文件名中包含关键字的文件，并将其绝对路径展示出来。
//（2）	用户输入指令2，代表“指定后缀名检索文件”，此时需要用户输入检索的目录和后缀名（多个后缀名用逗号分隔），系统在用户指定的目录下检索出指定后缀名的文件，并将其绝对路径展示出来。
//（3）	用户输入指令3，代表“复制文件/目录”，此时需要用户输入源目录和目标目录，程序执行后会将源目录下的内容复制到目标目录下。
//（4）	用户输入指令4，代表“删除文件/目录”，此时需要用户输入需要删除掉的文件目录，程序执行后会将目录以及目录下的内容全部删除。
//（5）	用户输入指令5，代表“退出”，即退出该系统。

import java.io.IOException;
import java.util.Scanner;

public class Main {
    //对接口中的各类方法进行操作
    private static void doOperation(int choice, INoperation[] operations) throws IOException {
        operations[choice - 1].workFIle();
    }

    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        //创建操作类的批量操作接口
        INoperation[] operations = new INoperation[]{
                new KeyWordSearch(),
                new SuffixNameSearch(),
                new CopyFile(),
                new DeleteFile()
        };
        while(true)
        {
            System.out.println("=============================");
            System.out.println("请选择指令操作：");
            System.out.println("1.指定关键字检索文件");
            System.out.println("2.指定后缀名检索文件");
            System.out.println("3.复制文件/目录");
            System.out.println("4.删除文件/目录");
            System.out.println("5.退出");
            System.out.println("=============================");
            int choice = sc.nextInt();
            switch(choice)
            {
                case 1:
                    doOperation(choice, operations);
                    break;
                case 2:
                    doOperation(choice, operations);
                    break;
                case 3:
                    doOperation(choice, operations);
                    break;
                case 4:
                    doOperation(choice, operations);
                    break;
                case 5:
                    System.exit(0);
                default:
                    System.out.println("请重新输入指令");
            }
        }

    }
}
